package com.shxzz.shortlink.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.shxzz.shortlink.project.dto.req.GroupLinkAccessRecordReqDTO;
import com.shxzz.shortlink.project.dto.req.GroupLinkStatusReqDTO;
import com.shxzz.shortlink.project.dto.req.LinkAccessRecordReqDTO;
import com.shxzz.shortlink.project.dto.req.LinkStatusReqDTO;
import com.shxzz.shortlink.project.dto.resp.GroupLinkAccessRecordRespDTO;
import com.shxzz.shortlink.project.dto.resp.GroupLinkStatusRespDTO;
import com.shxzz.shortlink.project.dto.resp.LinkAccessRecordRespDTO;
import com.shxzz.shortlink.project.dto.resp.LinkStatusRespDTO;

/**
 * @author shxzz
 * @create 2023-12-27-15:52
 * @description 短链接监控信息接口层
 */
public interface LinkStatusService {

    /**
     * 单个短链接监控信息查询
     * @param requireParam 短链接查询参数
     * @return 短链接监控信息
     */
    LinkStatusRespDTO oneLinkStatus(LinkStatusReqDTO requireParam);

    /**
     * 分页查询短链接访问记录
     * @param linkAccessRecordReqDTO 短链接访问记录查询参数
     * @return 查询结果
     */
    IPage<LinkAccessRecordRespDTO> selectLinkAccessRecord(LinkAccessRecordReqDTO linkAccessRecordReqDTO);

    /**
     * 短链接分组监控信息查询
     * @param requireParam 短链接查询参数
     * @return 短链接监控信息
     */
    GroupLinkStatusRespDTO groupLinkStatus(GroupLinkStatusReqDTO requireParam);

    /**
     * 分页查询短链接分组访问记录
     * @param groupLinkAccessRecordReqDTO 短链接访问记录查询参数
     * @return 查询结果
     */
    IPage<GroupLinkAccessRecordRespDTO> selectGroupLinkAccessRecord(GroupLinkAccessRecordReqDTO groupLinkAccessRecordReqDTO);
}
